/*!
 * @author Xiao
 * @create 2018-11-13 13:53
 */

$(function(){
    load();
    $("#addDeptForm").validate({
        rules: {
            deptName: {
                required: true,
            },
            deptNameE: {
                required: true,
            },
            deptType: {
                required: true,
            }
        },
        messages: {
            deptName: {
                required: "请输入部门名称",
            },
            deptNameE: {
                required: "请输入英文名称"
            },
            deptType: {
                required: "请输入机构等级"
            }
        }
    });
})

var addRemoteValid=function(){
    $("#deptName").rules("add",{
        remote: {
            type: "get",
            url: "/dept/repet",
            data: {
                deptName: function() {return $("#deptName").val();
                }
            }
        },
        messages:{
            remote: "该部门已经存在"
        }
    });
}

$("#addDept").on("hidden.bs.modal", function() {
    $('#addDeptForm')[0].reset();
    // load();
    $(this).removeData("bs.modal");
});

var isUpdate;

function addDept(id,name) {
    isUpdate = false;
    $("#parentId").val(id==undefined ? 0 : id);
    $("#pdeptName").val(name);
    $('#addDept').modal({
        keyboard: true
    });
    //增加验证规则
    addRemoteValid();
}

function edit(id) {
    isUpdate = true;
    //删除验证规则
    $('#deptName').rules('remove','remote');
    $.ajax({
        type:'get',
        url:'/dept/getById?id='+id,
        dataType:"json",
        success:function(data){
            $('#id').val(data.id);
            $('#parentId').val(data.parentId);
            $('#deptName').val(data.deptName);
            $('#deptNameE').val(data.deptNameE);
            $('#deptType').val(data.deptType);
            $(":radio[name='status'][value='"+data.status+"']").prop("checked", "checked");
            $('#addDept').modal({
                keyboard: true
            });
        }
    })
}

function removeDept(id) {
    layer.confirm('确定要删除该部门以及子部门吗？', {
        btn : [ '确定', '取消' ]
    }, function() {
        $.ajax({
            url :"/dept/removeDept",
            type : "post",
            data : {
                'id' : id
            },
            success : function(data) {
                if (data.code == 200) {
                    layer.msg("删除成功");
                    load();
                } else {
                    layer.msg(data.msg);
                }
            }
        });
    })
}

$.validator.setDefaults({
    submitHandler: function() {
        var id = $('#id').val();
        var parentId = $('#parentId').val();
        var deptName = $('#deptName').val();
        var deptNameE = $('#deptNameE').val();
        var deptType = $('#deptType').val();
        var status = $(":radio[name='status']:checked").val();

        $.ajax({
            type:"post",
            url:isUpdate ? "/dept/updateDept" : "/dept/addDept" ,
            dataType: "json",
            data:{id:id,parentId:parentId,deptName:deptName,deptNameE:deptNameE,deptType:deptType,status:status},
            success:function (data){
                if(data.code == 200){
                    layer.msg(isUpdate?"更新成功":'添加成功');
                    var index = parent.layer.getFrameIndex(window.name);
                    load();
                    setTimeout(function () {
                        //先得到当前iframe层的索引
                        parent.layer.close(index);
                        $("#addDept").modal('hide');
                    },600)
                }else{
                    layer.msg('失败，请刷新页面');
                }
            }
        });
    }
});



var load = function() {
    $('#deptTable').bootstrapTreeTable({
        id : 'menuId',
        parentColumn : 'parentId',
        type : "GET", // 请求数据的ajax类型
        url :  '/dept/depts', // 请求数据的ajax的url
        ajaxParams : {}, // 请求数据的ajax的data属性
        expandColumn : '1',// 在哪一列上面显示展开按钮
        striped : true, // 是否各行渐变色
        bordered : true, // 是否显示边框
        expandAll : false, // 是否全部展开
        // toolbar : '#exampleToolbar',
        columns : [
            {
                title : '编号',
                field : 'menuId',
                visible : false,
                width : '140px',
            },
            {
                title : '名称',
                field : 'deptName'
            },
            {
                title : '英文名称',
                field : 'deptNameE'
            },
            {
                title : '机构等级',
                field : 'deptType'
            },
            {
                title : '状态',
                field : 'status',
                width : '80px;text-align:center',
                formatter : function(item, index) {
                    if (item.status === 0) {
                        return '有效';
                    }
                    if (item.status === 9) {
                        return '无效';
                    }
                }
            },
            {
                title : '操作',
                field : 'id	',
                width : '200px;text-align:center',
                formatter : function(item, index) {
                    var e = '<a class="btn btn-warning btn-sm" href="#" mce_href="#" title="编辑" onclick="edit(\''+ item.menuId+ '\')">编辑</i></a> ';
                    var p=  '<a class="btn btn-primary btn-sm"  href="#" mce_href="#" title="添加下级" onclick="addDept(\''+ item.menuId+ '\',\''+ item.deptName+ '\')">添加下级</i></a> ';
                    var d = '<a class="btn btn-danger btn-sm"  href="#" title="删除"  mce_href="#" onclick="removeDept(\''+ item.menuId+ '\')">删除</i></a> ';
                    return e + p + d;
                }
            } ]
    });
}
